#pragma once



class OpenTypeFeatureSelection;

struct Typography
{
public: 
	XINT32 m_nAnnotationAlternates;
	XUINT32 m_fEastAsianExpertForms;
	enum FontEastAsianLanguage m_EastAsianLanguage;
	enum FontEastAsianWidths m_EastAsianWidths;
	XUINT32 m_fStandardLigatures;
	XUINT32 m_fContextualLigatures;
	XUINT32 m_fDiscretionaryLigatures;
	XUINT32 m_fHistoricalLigatures;
	XINT32 m_nStandardSwashes;
	XINT32 m_nContextualSwashes;
	XUINT32 m_fContextualAlternates;
	XINT32 m_nStylisticAlternates;
	XUINT32 m_fStylisticSet1;
	XUINT32 m_fStylisticSet2;
	XUINT32 m_fStylisticSet3;
	XUINT32 m_fStylisticSet4;
	XUINT32 m_fStylisticSet5;
	XUINT32 m_fStylisticSet6;
	XUINT32 m_fStylisticSet7;
	XUINT32 m_fStylisticSet8;
	XUINT32 m_fStylisticSet9;
	XUINT32 m_fStylisticSet10;
	XUINT32 m_fStylisticSet11;
	XUINT32 m_fStylisticSet12;
	XUINT32 m_fStylisticSet13;
	XUINT32 m_fStylisticSet14;
	XUINT32 m_fStylisticSet15;
	XUINT32 m_fStylisticSet16;
	XUINT32 m_fStylisticSet17;
	XUINT32 m_fStylisticSet18;
	XUINT32 m_fStylisticSet19;
	XUINT32 m_fStylisticSet20;
	enum FontCapitals m_Capitals;
	XUINT32 m_fCapitalSpacing;
	XUINT32 m_fKerning;
	XUINT32 m_fCaseSensitiveForms;
	XUINT32 m_fHistoricalForms;
	enum FontFraction m_Fraction;
	enum FontNumeralStyle m_NumeralStyle;
	enum FontNumeralAlignment m_NumeralAlignment;
	XUINT32 m_fSlashedZero;
	XUINT32 m_fMathematicalGreek;
	enum FontVariants m_Variants;
	Typography();
	XUINT32 IsTypographyDefault() const;
	XUINT32 IsTypographySame(const struct Typography * pOther) const;
	HRESULT GetOpenTypeFeatureSelections(HRESULT * pFeatureCount, OpenTypeFeatureSelection * * ppFeatureSelections) const;
};